#ifndef CIRCLERENDERER_H
#define CIRCLERENDERER_H

#include "components/Renderer.h"
#include <SDL/SDL.h>

namespace SolidityEngine{

class CircleRenderer : public Renderer
{
    float _radius;
    bool _filled;

public:
    CircleRenderer(RenderTarget target = Renderer::RT_SCENE);
    virtual ~CircleRenderer();

    float& Radius() { return _radius; };
    float Radius() const { return _radius; };

    virtual void _Render(SDL_Surface* surface);

private:
    virtual CircleRenderer* _Clone();
    void _DrawCircle(SDL_Surface *surface, int n_cx, int n_cy, int radius, Uint32 pixel);
    void _FillCircle(SDL_Surface *surface, int cx, int cy, int radius, Uint32 pixel);
};

};

#endif // CIRCLERENDERER_H
